#include "stm32f10x.h"

void My_USART_SendBytes(USART_TypeDef *USARTx,uint8_t *pData,uint16_t  Size);
                                        //串口名称          //要发送的数字（数组）        //字节


int main(void)
{
    //IO口（GPIO）引脚初始化
    GPIO_InitTypeDef GPIO_InitSteuct;//声明变量
    
    
//    // PA9  TX
//    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE );//开启时钟
//    GPIO_InitSteuct.GPIO_Pin =GPIO_Pin_9;
//    GPIO_InitSteuct.GPIO_Mode = GPIO_Mode_AF_PP ;
//    GPIO_InitSteuct.GPIO_Speed =GPIO_Speed_10MHz;
//    GPIO_Init(GPIOA,&GPIO_InitSteuct);//初始化
//    
//    // PA10 RX
//    GPIO_InitSteuct.GPIO_Pin =GPIO_Pin_10;
//    GPIO_InitSteuct.GPIO_Mode = GPIO_Mode_IPU ;//上拉输入；输入可以不用速度
//    GPIO_Init(GPIOA,&GPIO_InitSteuct);//初始化
    
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO ,ENABLE);
      GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE );
      
      // PB6
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE );//开启时钟
      GPIO_InitSteuct.GPIO_Pin =GPIO_Pin_6;
      GPIO_InitSteuct.GPIO_Mode = GPIO_Mode_AF_PP ;
      GPIO_InitSteuct.GPIO_Speed =GPIO_Speed_10MHz;
      GPIO_Init(GPIOB,&GPIO_InitSteuct);//初始化
      
      // PB7
      GPIO_InitSteuct.GPIO_Pin =GPIO_Pin_7;
      GPIO_InitSteuct.GPIO_Mode = GPIO_Mode_IPU;
      GPIO_InitSteuct.GPIO_Speed =GPIO_Speed_10MHz;
      GPIO_Init(GPIOB,&GPIO_InitSteuct);//初始化
    
    //串口初始化
    RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1,ENABLE );//开启时钟
    
    USART_InitTypeDef USART_InitSteuct;//声明变量
    
    USART_InitSteuct.USART_BaudRate =115200;//波特率
    USART_InitSteuct.USART_Mode =USART_Mode_Rx| USART_Mode_Tx ;//双向
    USART_InitSteuct.USART_WordLength = USART_WordLength_8b ;//8位数据位
    USART_InitSteuct.USART_StopBits = USART_StopBits_1;//1位停止位
    USART_InitSteuct.USART_Parity = USART_Parity_No ;//无校验
    
    USART_Init (USART1,&USART_InitSteuct);//初始化（&取地址（指针））
    
    USART_Cmd(USART1,ENABLE);//闭合总开关
    
    uint8_t bytesToSend[]={1,2,3,4,5};
    
    My_USART_SendBytes(USART1 ,bytesToSend,5); 
    
    
   while(1)
    {
    
    }
}

void My_USART_SendBytes(USART_TypeDef *USARTx,uint8_t *pData,uint16_t  Size)
{
    for(uint32_t i=32;i<Size;i++)
    {
        // #1.等待发送数据寄存器空
        while(USART_GetFlagStatus(USART1,USART_FLAG_TXE ) ==RESET);
        // #2.将要发送的数据写入到发送数据寄存器
        USART_SendData (USARTx ,pData [i]);
    }
    while(USART_GetFlagStatus(USART1,USART_FLAG_TC) ==RESET);
}












